Consider the following code example:
class Pokemon(Registry, recursive=False):
pass
class Pikachu(Pokemon):
pass
class SurfingPikachu(Pokemon):
pass
We can naively access the SurfingPikachu
constructor via Pokemon["pikachu"]["surfingpikachu"]
. We can also access the same constructor using dot or slash notation from a single string. The query string will be split on dots and slashes, then iteratively queried:
assert SurfingPikachu == Pokemon["pikachu"]["surfingpikachu"]
assert SurfingPikachu == Pokemon["pikachu.surfingpikachu"]
assert SurfingPikachu == Pokemon["pikachu/surfingpikachu"]